package com.shortlink.utils;

import java.util.regex.Pattern;

public class ValidationUtils {

    // 正则表达式：手机号
    private static final String REGEX_MOBILE = "^1[3-9]\\d{9}$";
    // 正则表达式：邮箱号
    private static final String REGEX_EMAIL = "^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$";
    // 正则表达式：用户名（3到20位的字母或数字）
    private static final String REGEX_USERNAME = "^[a-zA-Z0-9]{2,20}$";

    // 编译后的手机号正则表达式模式
    private static final Pattern PATTERN_MOBILE = Pattern.compile(REGEX_MOBILE);
    // 编译后的邮箱号正则表达式模式
    private static final Pattern PATTERN_EMAIL = Pattern.compile(REGEX_EMAIL);
    // 编译后的用户名正则表达式模式
    private static final Pattern PATTERN_USERNAME = Pattern.compile(REGEX_USERNAME);

    /**
     * 验证手机号是否合法
     *
     * @param mobile 手机号
     * @return 手机号合法返回true，否则返回false
     */
    public static boolean isPhone(String mobile) {
        return PATTERN_MOBILE.matcher(mobile).matches();
    }

    /**
     * 验证邮箱号是否合法
     *
     * @param email 邮箱号
     * @return 邮箱号合法返回true，否则返回false
     */
    public static boolean isMail(String email) {
        return PATTERN_EMAIL.matcher(email).matches();
    }

    /**
     * 验证用户名是否合法
     * 3到20位的字母或数字
     * @param username 用户名
     * @return 用户名合法返回true，否则返回false
     */
    public static boolean isUsername(String username) {
        return PATTERN_USERNAME.matcher(username).matches();
    }


}